<?php
class Estado_model extends Model{
    function Estado_model()
    {
        parent::Model();

    }
       
    
/*
 * New estado Diario
 * */
    function getRolAutocomplete($limit,$chainLike){
    	$this->db->like('rol',$chainLike);
    	$this->db->or_like('materia',$chainLike);
    	return $this->db->get('causa',$limit);
    }
    	    
    function insertList($list)
    {
    	$this->db->insert('estado_list',$list);
    }
    
	function getList()
	{
		$this->db->select('*');
		return $this->db->get('estado_list');
	}
	
	function borra_fila_list($id)
	{
		$this->db->where('NumeroOrden', $id);
		$this->db->delete('estado_list'); 
	}
	
	function clean_table()
	{
		 $this->db->truncate('estado_list'); 
	}
	
	function getRol($idCausa){
		$this->db->select('rol');
    	$this->db->where('rol',$idCausa);
    	return $this->db->get('causa')->row();
    }
    	
    function getMateria($rol){
    	$this->db->select('materia');
    	$this->db->where('rol',$rol);
    	return $this->db->get('causa')->row();
    }
    
	function getUltimoID()
    {
    	$this->db->order_by('idestadodiario','desc');
    	$query = $this->db->get('estadodiario');
		$row = $query->row_array();	
		$id = $row['idestadodiario'];	
		return $id;		
    }
    
    function almacena_estado_diario($fecha)
    {
    	$fecha = array('fecha'=>$fecha);
    	return $this->db->insert('estadodiario',$fecha);
    	
    }
    function almacena_estado_detalle($fecha)
    {
    	$id = $this->getUltimoID();
    	$data['estado_detalle'] = $this->getList();
    	
    	foreach($data['estado_detalle'] ->result() as $row)
    	{
    		$rol = $row->rol;
    		$resol = $row->resoluciones;
    		$materia = $row->materia;
    		$sentencia = $row->sentencia;
    	    $campos = array('idestadodiario'=>$id,'rol_causa'=>$rol,'materia'=>$materia,'resoluciones'=>$resol,'sentencia'=>$sentencia);    		
    		$this->db->insert('estadodiario_detalle',$campos);
    	}
    	return true;
    }
    function edit_estado_detalle($fecha,$idEstado)
    {
    	$this->db->where('idestadodiario',$idEstado);
    	$this->db->delete('estadodiario_detalle');
   		
    	$data['estado_detalle'] = $this->getList();
    	foreach($data['estado_detalle'] ->result() as $row)
    	{
    		$rol = $row->rol;
    		$resol = $row->resoluciones;
    		$materia = $row->materia;
    		$sentencia = $row->sentencia;
                $campos = array('idestadodiario'=>$idEstado,'rol_causa'=>$rol,'materia'=>$materia,'resoluciones'=>$resol,'sentencia'=>$sentencia);
    		$this->db->insert('estadodiario_detalle',$campos);
    	}
    	return true;
    }
 
	function getIdEstados($fecha)
    {
    	$this->db->select('idestadodiario');
    	$this->db->where('fecha',$fecha);
    	$this->db->limit(1);
    	return $this->db->get('estadodiario')->row();
    }
	function getEstados($idEstado)
    {
    	$this->db->select('*');
    	$this->db->where('idestadodiario',$idEstado);
    	return $this->db->get('estadodiario_detalle');
    }
    function getLastFecha($fecha_actual)
    {
    	$this->db->select('fecha');
    	$this->db->where('fecha <=',$fecha_actual);
        $this->db->order_by('fecha','desc');
	$this->db->limit(1); 
    	return $this->db->get('estadodiario')->row();	
    }
    function delete_estado($idEstado)
    {
    	$this->db->where('idestadodiario',$idEstado);
    	$this->db->delete('estadodiario');
    	
    	$this->db->where('idestadodiario',$idEstado);
    	return $this->db->delete('estadodiario_detalle');
    	
    	
    }
    function get_estado_pagination($id_estado)
    {	
    	$this->db->select('*');
    	$this->db->where('idestadodiario',$id_estado);
    	return $this->db->get('estadodiario_detalle');	
    }
    function total_results($id_estado)
    {
    	$this->db->select('*');
    	$this->db->where('idestadodiario',$id_estado);
    	$this->db->from('estadodiario_detalle');
    	$total = $this->db->count_all_results();
    	return $total;	
    }
    /*
     * Funciones para la paginación de estados
     */

    function getIdEstadoAnterior($fechaEstado)
    {
            $this->db->select('idestadodiario');
            $this->db->where('fecha',$fechaEstado);
            $temp = $this->db->get('estadodiario')->row();
            $idEstado = ($temp->idestadodiario);
            return $idEstado-1;
    }
    function getFechaEstado($idEstado)
    {
         $this->db->select('fecha');
         $this->db->where('idestadodiario',$idEstado);
         $temp = $this->db->get('estadodiario')->row();
         $fecha = $temp->fecha;
         return $fecha;
    }
    function getIdEstadoSiguiente($fechaEstado)
    {
        $this->db->select('idestadodiario');
            $this->db->where('fecha',$fechaEstado);
            $temp = $this->db->get('estadodiario')->row();
            $idEstado = $temp->idestadodiario;
            return $idEstado + 1;
    }
    function getLastId()
    {
        $this->db->select('idestadodiario');
        $this->db->order_by('idestadodiario', 'desc');
        $temp = $this->db->get('estadodiario')->row();
        $ultimoId = $temp->idestadodiario;
        return $ultimoId;
    }
    function getFirstId()
    {
        $this->db->select('idestadodiario');
        $this->db->order_by('idestadodiario', 'asc');
        $temp = $this->db->get('estadodiario')->row();
        $ultimoId = $temp->idestadodiario;
        return $ultimoId;
    }

    function verificaId($id)
    {
        $this->db->select('idestadodiario');
        $this->db->where('idestadodiario',$id);
        return $this->db->get('estadodiario');
    }
}//fin Causas_model
?>